%%BeginResource: procset pdf %%Version: 5.0 7 %%Copyright: Copyright 1998-2001 Adobe Systems Incorporated. All Rights Reserved. %%Title: General operators for PDF, common to all Language Levels. /cm { matrix astore concat } bd /d /setdash ld /f /fill ld /h /closepath ld /i {dup 0 eq {pop _defaultflatness} if setflat} bd /j /setlinejoin ld /J /setlinecap ld /M /setmiterlimit ld /n /newpath ld /S /stroke ld /w /setlinewidth ld /W /clip ld /initgs { 0 setgray [] 0 d 0 j 0 J 10 M 1 w false setSA /_defaulttransfer load settransfer 0 i /RelativeColorimetric ri newpath } bd /int { dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop } bd /limit { dup 2 index le { exch } if pop dup 2 index ge { exch } if pop } bd /domainClip { Domain aload pop 3 2 roll limit } [/Domain] bld /applyInterpFunc { 0 1 DimOut 1 sub { dup C0 exch get exch dup C1 exch get exch 3 1 roll 1 index sub 3 index N exp mul add exch currentdict /Range_lo known { dup Range_lo exch get exch Range_hi exch get 3 2 roll limit } { pop } ifelse exch } for pop } [/DimOut /C0 /C1 /N /Range_lo /Range_hi] bld /encodeInput { NumParts 1 sub 0 1 2 index { dup Bounds exch get 2 index gt { exit } { dup 3 index eq { exit } { pop } ifelse } ifelse } for 3 2 roll pop dup Bounds exch get exch dup 1 add Bounds exch get exch 2 mul dup Encode exch get exch 1 add Encode exch get int } [/NumParts /Bounds /Encode] bld /rangeClip { exch dup Range_lo exch get exch Range_hi exch get 3 2 roll limit } [/Range_lo /Range_hi] bld /applyStitchFunc { Functions exch get exec currentdict /Range_lo known { 0 1 DimOut 1 sub { DimOut 1 add -1 roll rangeClip } for } if } [/Functions /Range_lo /DimOut] bld /pdf_flushfilters { aload length { dup status 1 index currentfile ne and { dup flushfile closefile } { pop } ifelse } repeat } bd /pdf_readstring { 1 index dup length 1 sub get exch readstring pop exch pdf_flushfilters } bind def /pdf_dictOp { 3 2 roll 10 dict copy begin _Filters dup length 1 sub get def currentdict exch exec _Filters pdf_flushfilters end } [/_Filters] bld /pdf_image {{image} /DataSource pdf_dictOp} bd /pdf_imagemask {{imagemask} /DataSource pdf_dictOp} bd /pdf_shfill {{sh} /DataSource pdf_dictOp} bd /pdf_sethalftone {{sethalftone} /Thresholds pdf_dictOp} bd /pdf_maskedImage { 10 dict copy begin /miDict currentdict def /DataDict DataDict 10 dict copy def DataDict begin /DataSource _Filters dup length 1 sub get def miDict image _Filters pdf_flushfilters end end } [/miDict /DataDict /_Filters] bld /RadialShade { 40 dict begin /background exch def /ext1 exch def /ext0 exch def /BBox exch def /r2 exch def /c2y exch def /c2x exch def /r1 exch def /c1y exch def /c1x exch def /rampdict exch def gsave BBox length 0 gt { newpath BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip newpath } if c1x c2x eq { c1y c2y lt {/theta 90 def}{/theta 270 def} ifelse } { /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and { /theta theta 180 sub def} if c2x c1x lt c2y c1y lt and { /theta theta 180 add def} if } ifelse gsave clippath c1x c1y translate theta rotate -90 rotate { pathbbox } stopped { 0 0 0 0 } if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end } { rampdict begin 40 dict begin background length 0 gt { background sssetbackground gsave clippath fill grestore } if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 lt { c1x c1y r1 360 0 arcn xMin yMin moveto xMax yMin lineto xMax yMax lineto xMin yMax lineto xMin yMin lineto eofill } { c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill } { /AA r2 r1 sub c2y div def /theta AA 1 AA dup mul sub sqrt div 1 atan def /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def } { /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill } ifelse } ifelse } ifelse } if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt { exch } if pop /hires exch def hires mul /numpix exch def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def } if } if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def newpath xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke } { 0 numsteps { dup subsampling { round cvi } if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add } repeat pop } ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill } { c2y r1 add r2 le { c2x c2y r2 360 0 arcn xMin yMin moveto xMax yMin lineto xMax yMax lineto xMin yMax lineto xMin yMin lineto eofill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill } { /AA r2 r1 sub c2y div def /theta AA 1 AA dup mul sub sqrt div 1 atan def /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def } { /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill } ifelse } ifelse } ifelse } if grestore grestore end end end } ifelse } bd /GenStrips { 40 dict begin /background exch def /ext1 exch def /ext0 exch def /BBox exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /rampdict exch def gsave BBox length 0 gt { newpath BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip newpath } if x1 x2 eq { y1 y2 lt {/theta 90 def}{/theta 270 def} ifelse } { /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and { /theta theta 180 sub def} if x2 x1 lt y2 y1 lt and { /theta theta 180 add def} if } ifelse gsave clippath x1 y1 translate theta rotate { pathbbox } stopped { 0 0 0 0 } if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end } { rampdict begin 20 dict begin background length 0 gt { background sssetbackground gsave clippath fill grestore } if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt { exch } if pop mul /numpix exch def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def } if } if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill } if } if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling { round cvi } if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add } repeat pop ext1 { xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill } if } if grestore grestore end end end } ifelse } bd %%EndResource